<?php
/**
 * Created by PhpStorm.
 * User: hnh
 * Date: 2017/11/15
 * Time: 上午11:03
 */
namespace core;

class Boot{

    public static function run(){
        //初始化框架
        self::init();
        //运行框架启动方法
        self::appRun();
    }

    public static function init(){
        //开启session
        session_start();
        //定义一个判断是否为post提交的常量
        define('IS_POST',$_SERVER['REQUEST_METHOD'] == 'POST' ? true : false);
    }


    public static function appRun(){
        //通过判断是否存在get里的s参数来进行模块,控制器,方法的设置
        if (isset($_GET['s'])){
            //如果有s参数,运行这里
            $info = explode('/',$_GET['s']);
            //定义模块变量
            $m = $info[0];
            //定义控制器变量,类名首字母转成大写
            $c = ucfirst($info[1]);
            //定义方法变量
            $a = $info[2];
            //组合类 $class
            $class = 'app\\' . $m . '\\controller\\' . $c;
        }else{
            //定义模块变量
            $m = 'index';
            //定义控制器变量,类名首字母转成大写
            $c = 'Entry';
            //定义方法变量
            $a = 'index';
            //组合类 $class
            $class = 'app\\' . $m . '\\controller\\' . $c;
        }
        //定义常量
        //定义模块常量
        define('MODULE',$m);
        //定义控制器常量
        define('CONTROLLER',$c);
        //定义方法常量
        define('ACTION',$a);
        //执行回调函数,实例化$class类,并调用里面的$a方法
        echo call_user_func_array([new $class,$a],[]);

    }




}